;|--------------------------------------------------------------------------|
;|TITOLO:	si sfrutta l'interfaccia seriale per costruire un tx seriale|
;|		asincrona. Viene trasmessa una stringa solo come esempio;   |
;|		basta cambiare il buffer dei dati per trasmettere qualunque |
;|		dato si desideri.					    |
;|		Per iniziare la trasmissione, il uC aspetta un comando dal  |
;|		PC.							    |
;|--------------------------------------------------------------------------|


		$MOD51
		ORG 0000H
		MOV TMOD,#20H
		MOV TCON,#40H
		MOV PCON,#80H
		MOV TH1,#0FDH

RX:		MOV SCON,#51H
		MOV SBUF,#0
		JNB RI,$
		CLR RI
ACQ:		MOV A,SBUF
		JZ ACQ
		MOV SBUF,#93	;SPOSTO NELLO SBUF IL CODICE DI FINE TX

		CJNE A,#49,OLTRE
TX:		MOV SCON,#52H
START:  	MOV DPTR,#MESSAGGIO
STROUT:		CLR A
		MOVC A,@ A+DPTR
		JZ ACQ
CHAROUT:	JNB TI,$
		CLR TI
		MOV SBUF,A
		INC DPTR
		JMP STROUT
MESSAGGIO: 	DB 'Ciao trasmette 8051',0
		JMP CLEAR

OLTRE:		CJNE A,#50,RX
CLEAR:		MOV SBUF,#0
		JMP RX
		END